<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // 异步问题的解决
        //    回调函数
        //       地狱回调
        //    promise  是一种异步编程的解决方案
        //      提供简洁的  api   then  catch 
        //      可以更好的解决地狱回调

        //   promise用法
        //    创建一个   参数(resolve,reject)  
        //       成功就调用  resolve    失败就要调用reject
        //    调用then catch方法

        //   promise内部封装
        //      3个状态  pending  ->  fulFilled / rejected
        //      链式调用  返回了同类型的数据   then方法内部返回了promise

        //  方法
        //     实例的方法  then  catch   finally
        //     构造函数的方法  all / race / ...

        // 如何解决？
        //    链式  then 里面的函数需要返回promise
        //    all

        // async   await
        //    优点 让异步代码看起来跟同步是一样的
        //      forEach 报错  顺序不对
        //    本质   
        //      async  把函数变成了异步，默认返回了promise
        //      await fn()  必须返回一个promise  实际上会把promise成功的结果的值作为最终的返回值

      


        const p = new Promise(resolve => {
            resolve(1)
        })

        console.log(p);



        // const obj = {
        //     name : 'cc' ,
        //     [[name]] : 'cc' 
        // }

    </script>
    
</body>
</html>